axios.interceptors.response.use(
    function (response) {
        console.log('axios.interceptors.response', response);

        // 检查响应是否为文件下载请求（通过 MIME 类型）
        const contentType = response.headers['content-type'];

        // 从响应头中获取文件名
        const contentDisposition = response.headers['content-disposition'];
        const fileName = contentDisposition
            ? contentDisposition.split('filename=')[1].replace(/"/g, '')
            : 'default-filename.xlsx'; // 如果没有文件名，使用默认名称

        if (contentType && contentType.includes('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')) {
            // 文件下载处理逻辑
            const url = window.URL.createObjectURL(new Blob([response.data], { type: contentType }));
            const link = document.createElement('a');
            link.href = url;
            link.setAttribute('download', fileName); // 设置文件名
            document.body.appendChild(link);
            link.click();
            document.body.removeChild(link);

            // 显示成功提示信息
            alert('Excel 表导出成功！');

            // 返回原始响应数据或其他适当的处理
            return Promise.resolve(response);
        }

        // 处理常规业务响应
        // 检查业务响应代码
        if (response.data.code !== '200') {
            // 如果 code 不是 200，抛出错误进入 catch 块
            if (response.data.code === '401') {
                const errorMessage = response.data.errorMsg;
                // 使用 setTimeout 延迟 1 秒后跳转
                setTimeout(() => {
                    window.location.replace('/pages/login.html');  // 完整页面重定向
                }, 1000);  // 1000 毫秒 = 1 秒
            }
            return Promise.reject(response.data.errorMsg);
        } else {
            // 如果是 200，返回响应数据
            return response.data; // 返回解包后的数据
        }
    },
    function (error) {
        // 处理响应错误
        // alert('操作失败：' + error);
        return Promise.reject(error);
    }
);
axios.interceptors.request.use(
    function(config) {
        // 在发送请求之前添加token到Authorization headers中
        const token = localStorage.getItem("Token");
        if (token) {
            config.headers['Authorization'] = `Bearer ${token}`;
        }
        return config;
    },
    function(error) {
        return Promise.reject(error);
    }
);

